The special case for ASCII glyphs is unfortunately not
working very well, because of an oversight in pango:
When I added subpixel positioning, I made pango_shape()
default to not rounding, and make PangoLayout call
pango_shape_with_flags() and pass the rounding information
down. The upshot is that we need to use the _with_flags
variant here and tell it to round position, so it matches
what the text node contains.
glyph_string = pango_glyph_string_new ();
for (i = MIN_ASCII_GLYPH; i < MAX_ASCII_GLYPH; i++)
{
- pango_shape ((char[2]) { i, 0 },
- 1,
- ¬_a_hack,
- glyph_string);
+ const char text[2] = { i, 0 };
+
+ pango_shape_with_flags (text,
+ 1,
+ text,
+ 1,
+ ¬_a_hack,
+ glyph_string,
+ PANGO_SHAPE_ROUND_POSITIONS);
+
if (glyph_string->num_glyphs != 1)
{
pango_glyph_string_free (glyph_string);